import numpy as np
import cv2

def generate_test_image():
    # 生成带噪声的测试图像
    np.random.seed(2023)
    img = np.random.randint(0, 256, (512, 512), dtype=np.uint8)
    
    # 添加圆形图案
    cv2.circle(img, (256, 256), 100, 150, 20)
    
    # 使用OpenCV Sobel算子生成黄金数据
    sobel_x = cv2.Sobel(img, cv2.CV_32F, 1, 0, ksize=3)
    sobel_y = cv2.Sobel(img, cv2.CV_32F, 0, 1, ksize=3)
    golden = np.sqrt(sobel_x**2 + sobel_y**2)
    
    # 保存二进制文件
    img.tofile("input.bin")
    golden.astype(np.float32).tofile("golden.bin")
    print("生成测试数据完成：input.bin, golden.bin")

if __name__ == "__main__":
    generate_test_image()